Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

306
Vistas
La llamada de función de JavaScript dentro de otra llamada le permite acceder a argumentos a los que "argumentos [num]" no puede acceder

Estaba aprendiendo en el campamento de código libre y caí en un problema. Los arguments[1] resultan indefinidos cuando la función se llama así nombre de functionName(arg1) (arg2) , por lo que, por ejemplo, los arguments[1] darían como resultado indefinidos pero usando esto lo resolvió return (second) => addTogether(first, second); y no sé cómo una llamada de función en la función en sí podría haber accedido a algo a lo que ni siquiera los arguments[1] pudieron acceder, ¿alguien puede explicar aquí el código completo si alguien está interesado?

 function addTogether() { const [first, second] = arguments; if (typeof(first) !== "number") return undefined; if (second === undefined) return (second) => addTogether(first, second); if (typeof(second) !== "number") return undefined; return first + second; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cuando llama a la función usted mismo con solo un argumento, devuelve otra función.

El secreto es que el valor de first ya está almacenado dentro del cierre que devuelve la otra función desde la primera vez que llamaste a addTogether().

La función devuelta toma el second como argumento y luego llama a addTogether() con el first almacenado desde la llamada inicial y el second acaba de pasar a la función que llama a addTogether nuevamente.

Agregué un registro de consola dentro de addTogether para mostrar los valores de primero y segundo para las dos llamadas

 function addTogether() { const [first, second] = arguments; console.log('first = ',first, ', second = ', second) if (typeof(first) !== "number") return undefined; if (second === undefined) // `first` is already defined above from the first call // `second` will be passed into this new function that gets returned when you call it later return (second) => addTogether(first, second); if (typeof(second) !== "number") return undefined; return first + second; } // store the returned function as a variable const fn = addTogether(5); // now call the returned function with `second` value as parameter console.log('Total =',fn(10))//expect 15

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda